package com.ydzc.mapper;

import com.ydzc.domain.ClickInfo;
import com.ydzc.domain.ShareInfo;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;

import java.util.List;

@RepositoryRestResource(collectionResourceRel = "clickInfo", path = "clickInfo")
public interface ClickInfoRespository extends MongoRepository<ClickInfo, String> {
    //按分析的商品编号查询商品分享的链接点击信息
    List<ShareInfo> findByClickGoodsId(@Param("shareGoodsId") String shareGoodsId);

    //按分享的链接编号查询点击信息
    List<ShareInfo> findByShareInfoId(@Param("ShareInfoId") String ShareInfoId);
    //规则为基础的查询条件是可以加 And、Or 这种关联多个条件的关键字的。
    //当然，还有其他操作符：Between (值在两者之间), LessThan (小于), GreaterThan （大于）,
    //Like （包含）, IgnoreCase （b忽略大小写）, AllIgnoreCase （对于多个参数全部忽略大小写）,
    //OrderBy （引导排序子语句）,Asc （升序，仅在 OrderBy 后有效） 和 Desc （降序，仅在 OrderBy 后有效）。
    //刚刚我们谈到的都是对于查询条件子语句的构建，其实在 By 之前，对于要查询的对象也可以有限定的修饰词 Distinct （去重，如有重复取一个值）。
    //比如有可能返回的结果有重复的记录，可以使用 findDistinctTodoByUserIdAndDescLike。

    //按分享的链接编号查询点击信息，加上点击时间范围，和结算状态
    List<ShareInfo> findBy(@Param("ShareInfoId") String ShareInfoId);
}
